Adaptive finite impulse response (FIR) filters are used in digital signal processing systems such as, for example, network communication and medical instrumentation systems, to characterize the signal response in those systems. For example, a line echo canceler containing an adaptive FIR filter is typically included in a telecommunication network for purposes of eliminating undesirable echo that occurs in a subscriber loop signal path of a point-to-point telecommunication network channel. Line echo, if left unmitigated, causes a telephone caller to receive a delayed, audible echo of his or her own speech along with any speech signal that the calling party at the other end of the channel transmits.
An adaptive FIR filter typically is implemented using digital circuitry which suitably comprises a memory for storing data, and a programmed microprocessor or microcontroller for performing arithmetic operations associated with computing the signal response of a signal path. Typically, well known least mean squares (LMS) FIR techniques are utilized for computing an estimate of the signal response. For example, an adaptive FIR filter implemented in an echo canceler of a communication network typically calculates a digital output response signal, y(t), which is an estimate of a response echo signal, y(t), which would be produced from an input speech signal, x(t), provided in a channel of the network, according to the following LMS estimate equation: ##EQU1## where h.sub.n (t) is an estimate of an expected relationship between the response echo signal y(t) and the input signal x(t), n represents the nth FIR filter coefficient or tap for a time t and N is equal to total number of taps. The adaptive FIR filter further calculates updated values for each of the taps of h.sub.n (t) for every input signal sample x[t] received on a channel serviced by the echo canceler, according to the LMS update equations: EQU h.sub.n (t+1)=h.sub.n (t)+Ae(t).multidot.x[t-n], for 0.ltoreq.n.ltoreq.N-1, and [2a] EQU e(t)=y(t)-y(t), [2b]
where A is a gain scaling factor less then 1.
The above-described LMS-based adaptive FIR filter implementation requires that, for every input signal sample x[t] provided, the microprocessor must read from the memory N tap values h.sub.n (t) and the values of the previous N-1 input signal samples x[t-n], and must write to the memory N updated tap values h.sub.n (t+1) and the current input signal sample value x(t), in other words, perform 3N memory accesses per signal sample.
The number of memory accesses required for each input signal sample provided to the FIR limits the capacity of the microprocessor, and in turn that of the FIR filter. For example, the FIR filter in an echo canceler may not be able to characterize concurrently the signal response of many signal paths or signal paths having long path lengths. The capacity of such an adaptive FIR filter is measured by the product of the number of taps, N, in the filter and the number of channels that are serviced by the filter. For example, an adaptive FIR filter which is used in an echo canceler for servicing 32 channels of 64 msec echo paths, where the sampling frequency is 8 KHz, consists of 512 taps per channel, and would require a memory access rate in excess of 392 MHz.
Clearly, the required number of memory accesses per second for an adaptive FIR filter cannot exceed the maximum clock rate of the FIR filter implementation. Currently, CMOS technology provides that microprocessors may read data from and write data to memory at clock rates of approximately 80-100 MHz. Thus, for the example of echo canceler operation described above, the requirements concerning the number of channels or the echo path delay serviced would have to be modified accordingly. Although technologies achieving faster clock speeds may be developed, the capacity of an adaptive FIR filter still remains limited by the number of memory accesses that must be performed to characterize the impulse response for a particular input signal sample.